package org.example;

import java.util.*;

public class Map_Demo4 {
    public static void main(String[] args) {
        //创建集合存放四个景点
        String[] arr = {"A", "B", "C", "D"};
        //创建集合存放80个投票
        ArrayList<String> list=new ArrayList<>();
        //创建随机数对象 范围由景点确定
        Random r = new Random();
        for (int i = 0; i < 80; i++) {
            int index = r.nextInt(arr.length);
            //添加元素到投票集合中
            list.add(arr[index]);
        }
        //统计每个景点的出现次数
        Map<String,Integer> map=new HashMap<>();
        for (String name : list) {
            if(map.containsKey(name)){
                //如果有该景点 次数加1

                //获取当前元素的次数 键值
                Integer count = map.get(name);
                //次数加1
                count++;
                //将次数重新赋值给景点 覆盖原来对象
                map.put(name,count);
            }else{
                //如果没有该景点 次数为1
                map.put(name,1);
            }
        }
        System.out.println(map);

        //求出现次数最多的元素 键值对遍历 擂台法
        int max=0;
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            Integer value = entry.getValue();
            if(value>max){
                max=value;
            }
        }
        System.out.println(max);

        //打印出现次数最多的元素
        for (Map.Entry<String, Integer> entry : entries) {
            //获取次数
            Integer value = entry.getValue();
            if(value==max){
                //entry.getKey()获取键
                System.out.println(entry.getKey());
            }
        }
    }
}
